package fr.auzaiphe.admin.bdd;

import java.sql.SQLException;

import fr.auzaiphe.admin.model.Indice;
import fr.auzaiphe.admin.model.Joueur;

public class JoueurIndiceBDD
{

	/**
	 * lien entre un joueur et un indice est Associe
	 * @param indice Indice à lier à un Joueur
	 * @param joueur Joueur à lier à un Indice
	 * @param temps Temps en seconds depuis lequelle ils sont associer
	 */
	public static void estAssocieA( BaseDeDonnee pBdd, Indice indice, Joueur joueur, int temps)
	{
		String requeteUser1 = "INSERT INTO EST_ASSOCIE_A(" +
				"INDICE_ID," +
				"JOUEUR_ID," +
				"ASSOCIE_DEPUIS" +
				") VALUES(" +
				"'"+ indice.getId() +"'," +
				"'"+ joueur.getId() +"'," +
				"'"+ temps +"'" +
				");";

		try
		{
			pBdd.executerUpdate(requeteUser1);
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
	
	/**
	 * Supprime toutes les relations dans
	 * EST_ASSOCIE_A de l'indice passé en paramètre
	 * @param pBdd - Base de donnée XD
	 * @param pIndice - Indice à supprimer
	 */
	public static void supprimerAssociationA( BaseDeDonnee pBdd, Indice pIndice )
	{
		String requete = "DELETE FROM EST_ASSOCIE_A WHERE INDICE_ID = " + pIndice.getId()  + ";";
		
		try
		{
			pBdd.executerUpdate( requete );
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}


	/**
	 * lien entre un joueur et un indice, pour indiquer depuis quand est visible un indice pour un joueur
	 * @param indice Indice à lier à un Joueur
	 * @param joueur Joueur à lier à un Indice
	 * @param temps Temps en seconds depuis lequelle l'indice est visible
	 */
	public static void estVisiblePour( BaseDeDonnee pBdd, Indice indice, Joueur joueur, int temps)
	{
		String requeteUser1 = "INSERT INTO EST_VISIBLE_POUR(" +
				"INDICE_ID," +
				"JOUEUR_ID," +
				"VISIBLE_DEPUIS" +
				") VALUES(" +
				"'"+ indice.getId() +"'," +
				"'"+ joueur.getId() +"'," +
				"'"+ temps +"'" +
				");";

		try
		{
			pBdd.executerUpdate(requeteUser1);
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
	
	/**
	 * Supprime toutes les relations dans
	 * EST_VISIBLE_POUR de l'indice passé en paramètre
	 * @param pBdd - Base de donnée XD
	 * @param pIndice - Indice à supprimer
	 */
	public static void supprimerVisibiliteDe( BaseDeDonnee pBdd, Indice pIndice )
	{
		String requete = "DELETE FROM EST_VISIBLE_POUR WHERE INDICE_ID = " + pIndice.getId()  + ";";
		
		try
		{
			pBdd.executerUpdate( requete );
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
}
